package com.matrix.media.entity;

import com.matrix.media.entity.Effect.Effect;
import lombok.Data;

import java.util.List;

/**
 * 图像轨素材ImageTrackClip的范围包括图片素材。
 */
@Data
public class ImageTrackClip {

    /**
     * 图片轨素材对应的媒资库图片资源MediaId，或VOD图片媒资Id。
     *
     * 注：MediaId和MediaURL有且仅有一个不为空。
     */
    private String MediaId;

    /**
     * 图片轨素材片段对应的OSS地址，格式为：https://your-bucket.oss-cn-shanghai.aliyuncs.com/your-object.mp4
     *
     * 注：
     *
     * MediaId和MediaURL有且仅有一个不为空。
     *
     * MediaURL 仅支持OSS外网地址，不支持OSS加速地址、cdn地址或其他http url
     * https://help.aliyun.com/document_detail/198744.html#section-jqz-po8-d16
     */
    private String MediaURL;


    /**
     * 表示图片左上角距离输出视频左上角的横向距离。注：支持百分比和像素两种形式。当取值为[0～0.9999]时，表示相对输出视频宽的占比。当取值为>=2的整数时，表示绝对像素。
     */
    private Float X;

    /**
     * 表示图片左上角距离输出视频左上角的纵向距离。注：支持百分比和像素两种形式。当取值为[0～0.9999]时，表示相对输出视频高的占比。当取值为>=2的整数时，表示绝对像素。
     */
    private Float Y;

    /**
     * 表示图片在输出视频中的宽度。注：支持百分比和像素两种形式。当取值为[0～0.9999]时，表示相对输出视频宽的占比。当取值为>=2的整数时，表示绝对像素。
     */
    private Float Width;

    /**
     * 表示图片在输出视频中的高度。注：支持百分比和像素两种形式。当取值为[0～0.9999]时，表示相对输出视频高的占比。当取值为>=2的整数时，表示绝对像素。
     */
    private Float Height;

    /**
     * 图片出现在时间线的起始位置。单位：秒，精确到小数点后4位。如果TimelineIn不填，默认值为0
     */
    private Float TimelineIn;


    /**
     * 图片出现在时间线的结束位置。单位：秒，精确到小数点后4位。如果TimelineOut不填，默认值为视频轨的最大时长
     */
    private Float TimelineOut;

    /**
     * 动图的帧数，在素材为动图时必填
     * https://help.aliyun.com/document_detail/198744.html#section-ffs-6x1-iv5
     */
    private Integer DyncFrames;

    /**
     * 素材的效果列表
     */
    private List<Effect> Effects;
}
